1. Field of the Invention
The present invention generally relates to benefit task systems and, more particularly, to a policy for allocating resources to maximize some benefit. The invention may be applied to a variety of problems, and the benefit may be either tangible (e.g., profit) or intangible (e.g., customer satisfaction). In a specific example, the invention has particular application to server allocation in a Web site server “farm” given limited information regarding future loads to maximize profits for the Web hosting service provider. In another specific example, the invention can be applied to the allocation of telephone help in a way to improve customer satisfaction. In yet another example, the invention may be applied to distributed computing problems where the resources to be allocated are general purpose computers connected in a network and used to solve computationally intensive problems.
2. Background Description
Web content hosting is an important emerging market. Data centers and Web server “farms” are proliferating. The rationale for using such centers is that service providers can benefit from economies of scale and sharing of resources among multiple customers. This benefit in turn translates to lower cost of maintenance for the customers who purchase these hosting services. Web content hosting services are structured in many ways. One of the most prevailing ways is outsourcing: the customers deliver their Web site content in response to HTTP (hyper text transfer protocol) requests. Service providers will use “farms” of commodity servers to achieve this goal.
One of the components in the payment for such a service is “pay per served request”. Thus, one of the main objectives of the service provider is to maximize the revenue from served requests while keeping the tab on the amount of resources used. Ideally, the allocation to a Web site should always suffice to serve its requests. However, due to a limited number of servers and the overhead incurred in changing the allocation of a server from one site to another, the system may become overloaded, and requests may be left unserved. Under the assumption that requests are not queued, a request is lost if it is not served at the time it is requested. The problem faced by the Web hosting service provider is how to utilize the available servers in the most profitable way. What adds to the complexity of this problem is the fact that future load of the sites is either unknown or known only for the very near future. A Web content hosting service provider therefore needs a procedure to dynamically allocate servers in a server “farm” to its customers' Web sites.
Similar considerations apply in the cases of computer servers and telephone support centers. Telephone support centers typically are computer controlled telephone networks having a number of technical support, order support and customer service support operators. These operators are resources that must be allocated to customers who call in. Computer software is used to answer telephone calls and direct the calls to the appropriate pool of operators. In this application, the operators are the resources to be allocated. The wait time that a customer experiences is inversely proportional to customer satisfaction and, therefore, it is important to be able to dynamically allocate resources in such a manner as to minimize customer wait time and increase customer satisfaction. In this application, customer benefit is the intangible benefit which is sought to be maximized.
In yet another example, the resources to be allocated are general purpose computers used to solve computationally intensive problems. In this environment, multiple computers can be used concurrently to solve a problem faster than a single computer can solve it. The computers would be connected in a network which may include the Internet. It has even been proposed that personal computers connected to the Internet might constitute resources that could be employed in solving such problems. It is anticipated that a market for such services will become standardized to some extent, so that the computer cycles become a commodity (resource) available from multiple vendors. It would be an advantage to dynamically allocate such resources.